Data management and distribution

ABSTRACT

Techniques associated with data management and distribution are described, including receiving at a content distribution and management system activity data associated with a user from a client, the client having an interface configured to display commercial content and a player configured to access the content distribution and management system, storing the activity data in a database, displaying the commercial content using the interface, receiving other activity data associated with the user from the client, storing the other activity data in the database, determining other commercial content to display using the activity data and the other activity data, and displaying the other commercial content.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Non-Provisional patentapplication Ser. No. 12/715,344, filed on Mar. 1, 2010, which is acontinuation of U.S. Non-Provisional patent application Ser. No.11/439,864, filed May 24, 2006, now U.S. Pat. No. 7,698,301, whichclaims the benefit of U.S. Provisional Patent Application No.60/684,730, filed May 25, 2005, all of which are hereby incorporated byreference in their entirety for all purposes.

FIELD OF THE INVENTION

The present invention relates generally to software. More specifically,data management and distribution are described.

BACKGROUND OF THE INVENTION

Data management and sharing capabilities of conventional implementationssuffer from various disadvantages including lack of context, refresh anddelivery of new content, limited selectivity, and restricted useractions and options. For example, when sharing music files over theInternet, users are often presented with a large variety of potentialfiles for download. However, only very popular and well-marketedartists, musicians, and labels are readily available or easily found byusers. Lesser-known or independent musicians, artists, bands, and othergroups are often prevented from gaining wider exposure due to the largenumber of content providers.

Some conventional solutions attempt to present users with contentoriented around particular themes. However, these solutions still resultin obfuscation due to large amounts of content organized around alimited number of themes or categories. Also problematic are user modelsfor finding, retrieving, and running audio, video, audiovisual, text,graphic/pictorial, or other files on conventional implementations.

Subscription models, pay-for-play, individual download, and other usermodels limit the exposure of wide ranges of content to a large userbase. For example, subscription-based services may provide a user withunlimited selectivity, but limited categories and poor presentation ofcontent limits user exposure to content. Pay-for-play models are alsolimiting in that the user selects, retrieves, and executes a single filefor each fee (i.e., paying a per-file or per-download fee). Individualdownloads are further limiting in that single files limit the amount andexposure of a user to a potentially wide range of content, particularlyin music where large numbers of small and independent musicians areproducing content. In these models, users are limited to the amount,type, categories, genres, and other characteristics of services thatpresent content for download, streaming, sharing, or playing.Customizability of these services is typically generalized and does notcater to allowing independent artists, musicians, film makers, or othercontent providers to expose their works to users. From a contentprovider perspective, conventional implementations are unprofitable,limited in exposure, and difficult to manage, prohibiting data files(e.g., audio, video, audiovisual, text, graphic/pictorial, and the like)from gaining wider, if any, distribution.

Thus, what is needed is a solution for data management and distributionwithout the limitations of conventional implementations.

BRIEF DESCRIPTION OF THE DRAWINGS

Various examples are disclosed in the following detailed description andthe accompanying drawings:

FIG. 1 illustrates an exemplary data management and distribution system;

FIG. 2 illustrates an alternative exemplary data management anddistribution system;

FIG. 3 illustrates an exemplary logic module configured for datamanagement and distribution;

FIG. 4 illustrates an exemplary device configured for data managementand distribution;

FIG. 5 illustrates a flow chart of an exemplary process for datamanagement and distribution;

FIG. 6 illustrates a block diagram of exemplary artist fileidentifications for data management and distribution;

FIG. 7 illustrates a block diagram of exemplary identification schemesfor data management and distribution;

FIG. 8 illustrates a flow chart of an exemplary feedback process fordata management and distribution;

FIG. 9 illustrates a flow chart of an exemplary distribution process fordata management and distribution;

FIG. 10 illustrates a block diagram of an exemplary artist file bundlingfor data management and distribution; and

FIG. 11 is a block diagram illustrating an exemplary computer systemsuitable for data management and distribution.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as asystem, a process, an apparatus, or a computer readable medium such as acomputer readable storage medium or a computer network wherein programinstructions are sent over optical, wireless, or electroniccommunication links. In general, the steps of disclosed processes may beperformed in an arbitrary order, unless otherwise provided in theclaims.

A detailed description of one or more examples is provided below alongwith accompanying figures. The detailed description is provided inconnection with such examples, but is not limited to any particularexample. The scope is limited only by the claims and numerousalternatives, modifications, and equivalents are encompassed. Numerousspecific details are set forth in the following description in order toprovide a thorough understanding. These details are provided for thepurpose of example and the described techniques may be practicedaccording to the claims without some or all of these specific details.For the purpose of clarity, technical material that is known in thetechnical fields related to the examples has not been described indetail to avoid unnecessarily obscuring the description.

FIG. 1 illustrates an exemplary data management and distribution system.Here, system 100 includes application 102, client 104, logic module 106,user database 108, system database 110, content database 112, interface114, network 115, client interface 116, and memory 118. In otherexamples, the types, number, and configuration of components may bevaried. For example, application 102 and its various components may behosted on one or multiple servers. Components within system 100 (e.g.,application 102, client 104, and others) may be implemented as hardware,software, or a combination thereof. As software, components of system100 may be implemented using a variety of structured and unstructuredprogramming languages including Perl, Java, C, C++, C#, machineassembly, and others. In other examples, components may be varied,supplemented, or replaced (e.g., databases may be used in addition touser database 108, system database 110, and content database 112). Insome examples, application 102 distributes and manages data transferredthrough network 115 (e.g., LAN, WAN, MAN, Internet, and the like).Client 104 includes client interface 116, which may be an applicationresiding on a host. Client 104 and client interface 116 may becustomized for various purposes, appearance, and functions. For example,client interface 116 may be a user interface customized for anindividual user, administrator, business user (e.g., marketer,advertiser, business content provider, and the like), musician, artist,producer, and others (“user”).

In some examples, client 104 may request and access content (e.g., anartist file, which may be a song, audio, video, audiovisual, graphical,pictorial, or other data file) from application 102. A signal, message,or other data request sent from client 104 is received by logic module106 using interface 114. Data may be downloaded from application 102 toclient 104 and stored in memory 118. For example, content files may bedownloaded and run on client 104 over client interface 116.Characteristics may be used to determine the type, content, andselection of files to be downloaded to client 104. In some examples, auser profile (“profile”) may include one or more characteristics.Characteristics may also be rules, criteria, or other parameters used todetermine how data is transferred between application 102 and client104. Parameters may be user-specified or system-generated. Data may betransferred between application 102 and client 104 in various formats(e.g., electronic/electrical signals, wireless signals, files, XMLmessages, and the like). Data transferred from client 104 to application102 may be requests for particular types of content, specific files, orfiles grouped around themes, genres, or other user or system-specifiedcharacteristics. For example, client 104 may send a request in the formof an XML message to application 102. In response to the request,application 102 sends particular files (i.e., data) to client 104, basedon specific parameters, characteristics, or profile data associated witha user profile stored on memory 118. Data may also be collected fromclient 104 by application 102 and stored in user database 108. Useractivity data (“activity data”) may be collected in user database 108and used to determine which content files or data are downloaded toclient 104. As a further example, FIG. 2 illustrates the implementationof system 100 for implementing a music download service for differenttypes of users.

FIG. 2 illustrates an alternative exemplary data management anddistribution system. Here, system 200 includes application 202, listeneruser client 204-205, logic module 206, user database 208, systemdatabase 210, content database 212, interface 214, network 215, userinterface 216-217, content provider client 218, business user client220, StreamJ client 222, administrative client 224, interfaces 226-232,and memories 234-242. In some examples, system 200 may be adapted for avariety of data distribution and management purposes, including music,video, or entertainment content. For example, a wireless music playerdevice receives music download in a Wi-Fi hot spot. A user presses a“connect” button on the music player device to connect to a musicdistribution and management server. Once a connection is established theuser's playing information is sent to the server. After transfer iscomplete new songs are downloaded to the music player device accordingto a genre preference of the user. Here, system 200 has been adapted forthe distribution and management of music content files provided byindependent artists, production companies, and record labels. Theabove-described elements of system 200 may be implemented as hardware,software or a combination thereof. System 200 may be implemented using aclient-server, peer-to-peer (“p2p”), or other type of architecture.Application 202 may also be implemented using one or more programminglanguages such as those described above in connection with FIG. 1.Application 202 may also be implemented on either a single or multiplemachines (e.g., clients, servers, and others) and transfer data over apublic or private data network (e.g., WAN, LAN, MAN, Internet, andothers). In some examples, application 202 may also download contentfiles to various types and quantities of users, who may be categorizedbased upon characteristics, functions, or relationships with system 200.

Here, several types of clients are used for different types of users.Content provider 218 may include users who are providing content fordistribution and management by application 200. For example, contentprovider client 218 may be used by musicians, artists, or bands tomanage, upload, provide, or otherwise work with sound recordings orother digital media files (e.g., .mp3, .mpeg, .wav, .jpg, .gif, .mov,.mp4, and others) for storage in content database 212 (which may beimplemented as a single, multiple databases or storage arrays) anddistribution to other users (e.g., listener user clients 204 and 205,and the like). In some examples, a musician may add a song fordistribution or cancel distribution for a song. Canceling distributionprevents a song from being sent to users, but does not remove the songfrom system 200 if the song was previously distributed. Business userclient 220 may include marketers, record labels or producers, pressagents, publishers, other media creators (i.e., authors) ordistributors, or other users who provide information to system 200 onhow to manage, market, promote, sell, or use content commercially.StreamJ refers to an online “disc jockey” or individuals, systems,sites, or other entities who design, develop, and manage the delivery ofcontent to listener user client 204. A StreamJ may design theme, genre,category, or other types of play list categories with or withoutuser-created content such as voice, video, audio, graphical (i.e.,image), or other types of content that may be distributed or managed bysystem 200. In some examples, play list categories may include clean(i.e., suitable for general audience), explicit (i.e., suitable forrestricted audience), G (i.e., general), PG (i.e., parental guidance), R(i.e., restricted), X (i.e., adult) and the like. System administratorsmay use administrative client 224 to control or enter operationalparameters that guide the operation of system 200. For example,administrative client 224 may be used to determine how content filesfrom a content provider are distributed to listener user client 204. Inother examples, content (e.g., an artist file, which may be a song,audio, video, audiovisual, graphical, pictorial, or other data file) mayhave multiple versions each identified by a designation, such as“clean,” “explicit,” with rating (e.g., G, PG, R, X, and others.” Aselected version may be distributed based on preference (e.g., clean,explicit, G, PG, R, X, and the like) of the content provider or listenerclient. The selection may be based on an algorithm performed byadministrative client 224, or otherwise managed by system 200. Thevarious clients described above may be supplemented, complemented, orreplaced with other types of clients that serve different purposes.Also, the above-referenced clients may be implemented on various typesof devices, including personal computers, personal entertainment systems(e.g., MP3 players, iPods®, and the like), and the like. In someexamples, when a profile for a user is detected or transferred (by wayof using an assigned subscriber ID) to application 202, these devicesmay be activated to download, store, and execute content files invarious types of formats. The above description is not limited to thedetails described above and may be implemented differently.

Clients 204, 205 and 218-224 provide for customizable functionality byapplication 202 and individual users. “Swappable” or changeable “skins”(i.e., a graphical user interface or display) may be changed based oninput characteristics used by logic module 206 or user activity storedin user database 208. Further, content files may be downloaded incategories or sets that are determined by application 202 or individualuser preferences entered via user interface 216 and collected by logicmodule 206. In some examples, individual user preferences may includeproviding configuration settings on a player such as “clean,”“explicit,” or other ratings (e.g., G, PG, R, X, and others).Application 202 may limit distribution of artist files according to theuser preferences based on an algorithm. For example, an algorithm mayrestrict downloading an artist file designated as explicit content, toavoid sending unwanted content (i.e., artist files) to a player with aprofile designated as clean. As another example, an artist filedesignated for limited distribution (e.g., adult, explicit, R, X, orother adult content) may be substituted or replaced with a differentversion (i.e., “clean”) when the content is requested or sent to playerthat is not configured to receive content with similar ratings. Forexample, when an explicit artist file is requested by or forwarded to aplayer with a profile or configuration setting indicating the player as“clean” (i.e., configured to receive content with a G or other similarrating that avoids discovery of adult content), a clean version of theartist file is sent instead. In other examples, commercial content(e.g., ads, commercials, marketing programs, and the like) may also beintegrated with content files that are distributed and stored byapplication 202. System 200 provides the ability to deliver contentbased on system data, user activity, user and system-specifiedcharacteristics, or other parameters. Content files delivered by system200 may also be managed by various types (e.g., clean, explicit, G, PG,R, X, and others) and categories of users (e.g., marketers, advertisers,musicians, record labels, production companies, and others). Contentfiles may also be delivered using various techniques such as downloadinga set or group of files that are organized by one or morecharacteristics (e.g., theme, genre, type, category, classification,price, date, user preferences, referral characteristics, and the like).Further, when downloaded to a client (e.g., listener user client 204,and others), one or more content files may also be forwarded to otherlistener user clients, which extends distribution and exposure ofcontent for content providers. In some examples, additional componentsmay be added to application 202 to provide electronic commercecapabilities to allow for royalty payments to be collectedelectronically for downloads. The above-described capabilities enablesystem 200 to provide both system and user-oriented “experiences” thatallow for individual preferences to be accommodated. In other examples,various modifications or alternations may be made to the above-describedimplementation. Other modifications may be made obvious by the abovedescription and implementations are not limited to the details providedabove.

FIG. 3 illustrates an exemplary logic module configured for datamanagement and distribution. Here, an example of a logic module for usein systems (e.g., 100 (FIG. 1), 200 (FIG. 2), and the like) isdescribed. In some examples, logic module 300 includes logic core 302,activity database 304, meta database 306, rules 308, and logic interface310. Logic core 302 may include rules, sets of instructions, or otheradaptive parameters that enable systems 100 or 200 to determine thedistribution and management of content files. For example, logic core302 may be implemented as a set of rules that, when executed, determinethe desired content file to be sent to a listener user client (e.g., 204and 205 FIG. 2, and the like). In other examples, logic core 302 mayinclude adaptive intelligence that enables user activity data stored inapplication 202 (FIG. 2) to evaluate a user profile, user activity andpreferences, and then determine which content files to send to theclient, without requiring either an active/affirmative request (i.e.,push). Meta database 306 provides a repository for meta-data associatedwith XML messages and the like, transferred between a distribution andmanagement application and clients. XML messages and the like mayprovide content and metadata, the latter of which may be used todetermine the presentation or display format for particular content. Inother examples, logic module 300 may be implemented in a mannerdifferent than that described above.

FIG. 4 illustrates an exemplary device configured for data managementand distribution. Here, device 400 may be implemented as a client forpurposes such as those described above in connection with FIGS. 1 and 2.In some examples, device 400 includes logic core 402, memory 404, mediacodec 406, and interface 408. In this example, data transferred betweendevice 400 and a distribution and management application (e.g., 102(FIG. 1), 202 (FIG. 2), and the like) may be XML messages and the like,which include content data and metadata. In other examples, datatransfer may be performed using different techniques. Memory 404provides local storage for content and metadata to be stored on device400. Memory 404 may be implemented using a variety of techniques (e.g.,SRAM, DRAM, Flash, and others) and is not limited to a particularimplementation. Likewise, the memory and storage components describedfor FIGS. 1-11 may be implemented using a variety of technologies andtechniques such as those described above. Referring back to FIG. 4,media code 406 enables coding and decoding of content files and may beimplemented using one or a series of codecs, depending upon the type ofcontent format used (i.e., playback) on device 400. Interface 408enables the transfer of data between device 400 and a distribution andmanagement application (not shown), either directly or indirectly (i.e.,using a network). Other variations may be implemented with device 400and are not limited to the details, components, or techniques describedabove.

FIG. 5 illustrates a flow chart of an exemplary process for datamanagement and distribution. This process may be adapted for a varietyof data distribution and management purposes, including music, video, orentertainment content. Here, an artist file is identified for retrieval(502). In some examples, artist files (e.g., music files from musicians,ad files from advertisers, other commercial content from marketers,record labels, production companies, and the like) may be identifiedfrom local and remote content sources (e.g., content data base 212,memory 234, and others). In other examples, a music player device (e.g.,clients 204 and 205 (FIG. 2), device 400 (FIG. 4), and the like) mayhave peer-to-peer functionality that allows identification andacquisition content from other music player devices instead of a server,which may be limited in distribution of content due to bandwidth (i.e.,the connection speed and rate for passing data over a given period oftime) constraints. In still other examples, artist files may beidentified according to a profile using characteristic information suchas demographics, psychographies, user preferences, user action history,and the like. Artist files may also be identified according to otheridentification schemes. Once identified, an artist file is retrieved(504). Alternatively, artist files may be retrieved in bundles(“boxcars”) based on various distribution schemes. Distribution schemesfor individual files or boxcars may be based on minimizing duplication,organizing files based on a given theme, genre, provider, date, userpreference, referral preference or other parameter. Distribution schemesmay be based on seeding a peer group, where different boxcars are sentto one or more members of a peer group to promote forwarding activityamong group members. Distribution schemes may also be implementeddifferently.

Once retrieved, an artist file may be sent to a music player device(e.g., 104 (FIG. 1), and the like) according to one or more parametersdetermined by a provider of the artist file (506). In some examples, anartist file may be sent with a time expiration parameter (i.e., after apre-set or pre-determined amount of time has expired, an artist file isno longer available, playable, downloadable, or the like). In otherexamples, an artist file may be sent with one or more control parametersto restrict or modify certain actions to be performed while using themusic player device. For example, a control parameter may be associatedwith an advertisement-type artist file, which has been configured torestrict actions that can be performed using the player. For example, acontrol parameter may be associated with artist files designated asexplicit by a provider. This control parameter may restrict actions thatcan be performed using a player designated as clean in user preference.For example, a control parameter may indicate the status of whether amusic player device or user has paid for an artist file. A controlparameter may also indicate whether a music player or user has asubscription account that is current (i.e., paid to date), should paybefore an artist file is sent, or the like. If a control parameterindicates that a user is not permitted to access a given artist file,then the music player device is unable (i.e., not permitted) to downloadthe artist file. A control parameter may also be used to allow a userwho is a registered free listener to receive new music bundles (i.e.,boxcars) and use the functionality of the music player device, withoutforwarding music to other users. Users who are paying listeners may beallowed to forward music to other users or subscribe to StreamJs. Insome examples, a user may also be limited in his ability to forwardartist files received from a StreamJ, which may prevent a user fromredistributing the same artist files. In other examples, a userdesignated as explicit may be limited in his ability to forward artistfiles to other users designated as clean, thus avoiding sending unwantedcontent to another player. In still another example, system application(e.g., 202 (FIG. 2)) may substitute an explicit artist file forwardedfrom a user with an alternate version (e.g., clean, G, or the like)before the artist file is sent to other users that are configured toreceive “clean” content, thus avoiding sending unwanted artist files toanother player.

Here, a user may perform an action on a music player device (e.g.,accept, reject, skip, forward, and others) (508). In some examples, anaction may be performed on an artist file during use (e.g., whileplaying a song a user can use an interface on a music player device andaccept, reject, skip, or forward a song, or perform other actions). Insome examples, acceptance of a song indicates a user likes a particularartist and wishes to receive more songs from the same artist. Likewise,rejecting a song indicates the user dislikes the artist and does notwish to receive more songs from the same artist. Further, skipping asong indicates the user is undecided, indifferent, or uncaring about anartist. Additional actions may be implemented such as clicking throughto an artist's (i.e., provider's) web site, forwarding a song to afriend, or buying a song. For example, selecting a “play” buttonimplemented on an interface associated with a music player device maynot immediately play a song, but also initiate an advertisement (i.e.,artist file) to be played before the song. As another example, a usermay also use an “accept,” “reject,” “skip,” “forward,” or other buttonor control to indicate a rating feedback for the advertisement (i.e.,artist file), which continues to play to the end without beingphysically rejected or skipped.

In some examples, when an accept, reject, skip, forward or other actionis selected, meta-data (e.g., artist name, song title, total play timefor each listening session, each complete play for a song, amount oftime between interaction with the interface, shuffling and sortingbehavior, advertiser name, ad title, each complete play for an ad,amount of time between interactions with the interface, or others) maybe collected, associated with, or stored in an updated profile (510).The user profile may also be updated using other user information, suchas demographics, psychographies, user preferences, and the like. Theabove-described process may be varied in design, function, andimplementation and are not limited to the examples provided.

FIG. 6 illustrates a block diagram of exemplary artist fileidentifications for data management and distribution. Here, a profile602 may be used to identify an artist file 604. Further, anidentification scheme 608 may be used to also identify an artist file604. In some examples, artist files may be identified according to aprofile 602 associated with a music player device. The profile 602 mayinclude user specified information such as demographics, preferredgenre, artist, StreamJ, and the like. The profile 602 may also includemeta-data collected from user interaction with the interface (“activitydata”), such as those described above in connection with FIG. 6. In someexamples, logic core 302 (FIG. 3) may include a content targetinganalysis engine and an ad targeting analysis engine. In some examples, acontent targeting analysis engine may be an application or logicimplemented for logic core 302 (FIG. 3) and configured to analyze andtarget content for delivery to users or music player devices. Likewise,an ad targeting analysis engine may be an application or logicimplemented for logic core 302 (FIG. 3) and configured to analyze thetarget commercial content (i.e., advertisements) to users or musicplayer devices. As an example, a content targeting analysis engine maybe configured to analyze information about listening preferences fromprofiles and music catalogs (i.e., catalogs referencing content fromvarious data bases) to create bundles (i.e., boxcars) that are targetedto users. An ad targeting analysis engine may also be configured toanalyze information about users based on information in profiles fortargeted advertising. Profiles, identification schemes, and artist filesmay be varied in design, function, and implementation and are notlimited to the examples described above.

FIG. 7 illustrates a block diagram of exemplary identification schemesfor data management and distribution. Here, an identification scheme 702may be based on a StreamJ 704, promotion 706, fan list 708, self-queuing710, action 712, randomization 714, social filtering 716, or other typesof schemes. Identification schemes may be used to identify particulartypes of artist files (e.g., music files, songs, images, advertisements,and others) for retrieval and transmission to and between music playerdevices. For example, a StreamJ 704 identification scheme may be used byan artist, musician, band, or other provider (“provider”) to manage anddistribute artist files based on subjective criteria determined by theprovider. Artist files may be identified using a StreamJ, which mayrefer to an entity or individual responsible for determining acollection or grouping of artist files based on a theme, genre,category, play list category, or other type of parameter. In otherexamples, a StreamJ may also refer to the collection or grouping ofartist files selected by a StreamJ. As an example, a play list mayinclude a list of one or more artist files that may also haveannotations based on a preference of a StreamJ. A user may alsosubscribe to a StreamJ service and receive artist files selected by aStreamJ and sent (e.g., via “streaming”, or other sending method) to hismusic player device. In some examples, a search algorithm may match aStreamJ's play list categories to a user's preference found in a profileassociated with the user's music player device. The search algorithm mayreport good matches for a particular listener user to a number ofStream's.

As another example, promotion 706 may be an identification scheme usedto identify advertisement files provided by advertisers, marketers,record labels or producers, press agents, publishers, and other entitiesproviding commercial content to send to a demographically,psychographically, or otherwise targeted audience. In some examples,advertisement files may be added, inserted, combined, or otherwiseannotated to other artist files for transmission to one or more musicplayer devices. Promotion 706 may also be used as an identificationscheme by musicians, artists, or bands to target an audience based onuser profile and to send content to promote a particular song or album.As another example, artist files sent to a music player device may alsobe determined using an identification scheme based on fan list 708. Fanlist refers to a list of a group of listener users following aparticular artist, musician, band, or the like. In still other examples,using an identification scheme based on self queuing 710, a user mayaccess another profile on another music player device associated with afriend and identify one or more artist files based on preferencesreflected in another profile. In some examples, a user designated as“clean” may be limited in his ability to access a player designated as“explicit” or to identify an artist file designated as “explicit.” Inother examples, an artist file may have selected versions with differentratings (e.g., explicit, R, X or the like). Different versions of anartist file may be substituted by system application (e.g., 202 (FIG.2)) with an alternate version (i.e., “clean,” G, or the like). Forexample, an explicit artist file may be replaced with a “clean” versionof the artist file in order to prevent sending explicit content to aplayer configured by a user as “clean.”

In some examples, using action 712, artist files may be identified basedon an action (e.g., request, or the like) specified on a music playerdevice or an action (e.g., forward, or the like) specified on anothermusic player device. In other examples, artist files may also beidentified using an identification scheme based on randomization 714.Identification schemes based on randomization 714 retrieve and sendartist files to a music player device randomly.

In still other examples, artist files may be identified according todemographics based on social filtering or social network referraltechniques (716). As an example, social network referral techniques maybe based on music being forwarded between music player devices sharedwithin a community of friends or among users belonging to a ‘friendslist’. In an example, a community may be designated as “clean” and islimited in identifying artist files designated as “explicit.” In anotherexample, a community may be designated as “explicit” and may identifyartist files designated as “clean” or “explicit” based on individualuser choices or preference. In other examples, artist files may haveratings other than “clean” or “explicit.” In still other examples,ratings may be used by third parties (e.g., marketers, advertisers,StreamJs, users, and others) to control whether content may beforwarded, distributed, or sent. For example, an artist file with an“explicit” rating may be prevented from forwarding to a player that isset to receive only “clean” content. As another example, a marketer oradvertiser may send content (e.g., artist files having commercialcontent such as advertisements) to players that have characteristics orparameters (e.g., age, tolerance for explicit or adult content) set topermit adult commercial content to be received (i.e., commercial contentfor alcohol, prophylactic sexual aids, and the like). As anotherexample, social network referral techniques may be based on self-queuing(as described above) within a community of friends. Social networkreferral techniques may expand a fan list according to the userforwarding music files received from a promotion from a band, artist,marketer, or the like. The above-described examples may be varied andare not limited to the description provided.

FIG. 8 illustrates a flow chart of an exemplary feedback process fordata management and distribution. In some examples, meta-data mayrepresent a user's feedback (i.e., opinion, subjective analysis,comments, edits, or the like) regarding particular artist files andproviders (e.g., music, musicians, artists, bands, StreamJs, marketers,record labels, producers, press agents, publishers, and the like).Feedback may be collected from profile (802). Once collected, feedbackdata may be stored in user data base 208 as described in connection withFIG. 2 (804). Providers may be allowed to access or retrieve thefeedback through clients 218-224 (FIG. 2) (806). For example, when anartist file is played, a user may accept, reject, skip, forward, orperform another function (i.e., by pressing a button on an interfaceassociated with a music player device), thus sending meta-data (e.g.,artist name, song title, total play time for each listening session,each complete play for a song, amount of time between interaction withthe interface, shuffling and sorting behavior, or the like) forcollection into a profile, as described above in connection with FIG. 5.As another example, when an advertisement file (i.e., an artist filethat includes commercial content provided by a marketer, advertiser,advertising agency, or the like) is played, meta-data (e.g. advertisername, ad title, each complete play for an ad, amount of time betweeninteractions with the interface, or the like) may be collected into aprofile as described above in connection with FIG. 5. Theabove-described process may be varied and is not limited to the examplesprovided.

FIG. 9 illustrates a flow chart of an exemplary distribution process fordata management and distribution. Here, artist files are organized by orassociated with an attribute set comprising one or more characteristics(e.g. theme, genre, type, category, classification, price, date, userpreference, referral characteristics, and the like) (902). In someexamples, artist files may be grouped together in bundles or “boxcars.”Each boxcar is associated with a subset of the above-described attributeset (904). Once attribute subsets have been assigned to a boxcar, artistfiles having substantially the same attribute sub-set are assigned tothe boxcar (906). Artist files may be determined for inclusion in agiven boxcar using an algorithm to determine a heterogeneous mix ofartist files included in a boxcar based on the assigned attributes. Analgorithm may be implemented using a variety of techniques,characteristics, and parameters to determine how, when, and what type ofcontent is sent to a player or group of players. For example, someplayers may have age or tolerance parameters that prevent “explicit” oradult content from being received. In other examples, user groups (i.e.,groups of players sharing a common characteristic or parameter) maychoose not to receive adult content, have settings to prevent receptionor forwarding of content (i.e., artist files) based on player settingsor parameters. Here, a heterogeneous mix of artist files may includesongs that are arranged according to a particular order, randomlyordered, or ordered differently. Heterogeneous mix may also refer to amix or collection of songs that are included in a non-uniform manner.For example, an algorithm may distribute artist files based on anattribute such as an artist label, distributor, aggregator, or the like.In other examples, an artist file may be identified (i.e., by apublishing company, record label, or the like) as a preferred file. Insome examples, a preferred file may refer to artist files that areidentified or selected for greater distribution than others. An artistfile may also be identified using social filtering and popularityrankings by members (i.e., constituents, subscribers, and the like) of anetwork (i.e., subscriber base, listening audience, or other users thatbelong to a group, organization, or share some other affiliation).Boxcars may be grouped into ranges so that artist file distribution maybe managed (908). In some examples, ranges may be used to determine whatboxcars to distribute or remove from distribution to users. In otherexamples, ranges may be used to determine how boxcars are distributed tousers. In still other examples, ranges may be used differently. Forexample, each boxcar represents a bundle of music files with matchinggenre. A music download service may distribute boxcars to usersperiodically. The music download service may distribute boxcars to acommunity of friends, buddy list, or peer group using a pattern oralgorithm to avoid duplication. Various patterns or algorithms may beused and the above-described process is not limited to any particularimplementation. Exposure of music files may be expanded by forwarding orself-queuing artist files among users of a community (e.g., friends orbuddy lists, peer groups, social networks, or the like). A community maybe identified to a music download service based on analysis of profiles.The above-described process may be varied and is not limited to theexamples provided.

FIG. 10 illustrates a block diagram of an exemplary artist file bundlingfor data management and distribution. Here, boxcars 1001-1060 areorganized in ranges 1072-1076. In some examples, boxcars 1001-1060 eachrepresent artist files bundled together based on, for example, amatching attribute or attribute subset such as genre (e.g. rock,electronic, hip hop, rap, jazz, or the like). Boxcars 1001-1010 form arange 1070. Boxcars 1011-1020 forms a range 1064 and boxcars 1022-1040and 1042-1060 form ranges 1074 and 1076, respectively. Here, ranges 1056and 1068 each include 10 boxcars. In other examples, ranges 1070-1076may include fewer or more artist files and are not limited to theexamples provided.

As an example, a music download service may send one boxcar to alistener user each week. For example, the block diagram in FIG. 10 mayrepresent a snapshot at a given time. Boxcars marked with “x” (e.g.,boxcars 1001-1004, 1006-1007, 1009-1010, 1012, 1014, 1017, 1019, 1026,1032, 1040, 1046, 1050-1054, 1058) represent boxcars that have been sentto a user. Therefore, in FIG. 10 80% of range 1070, 40% of range 1072,30% of range 1074, and 50% of range 1076 have been sent to the user. Auser or system-specified threshold may be set such that when 80% of theboxcars in a given range have been sent, the given range is removed fromfurther distribution to users (i.e., music player devices). Here, boxcarrange 1070 may be removed from further distribution to a user whileboxcar ranges 1072-1076 are distributed. In other examples, differentthresholds may be specified and are not limited to the example providedabove. In some examples, boxcars may be disassembled (i.e., eliminated)based on changes in attributes or in changes in attributes relative toother artist files. Artist files within the disassembled boxcar are thencandidates for new boxcars along with other artist files in the networkthat are not included in boxcars or a specific boxcar group. Theabove-described process may be varied and is not limited to the examplesprovided.

FIG. 11 is a block diagram illustrating an exemplary computer systemsuitable for data management and distribution. In some examples,computer system 1100 may be used to implement computer programs,applications, methods, or other software to perform the above-describedtechniques such as those described above. Computer system 1100 includesa bus 1102 or other communication mechanism for communicatinginformation, which interconnects subsystems and devices, such asprocessor 1104, system memory 1106 (e.g., RAM, or the like), storagedevice 1108 (e.g., ROM, or the like), disk drive 1110 (e.g., magnetic,optical, or the like), communication interface 1112 (e.g., modem,Ethernet card, or the like), display 1114 (e.g., CRT, LCD, or the like),input device 1116 (e.g., keyboard, or others), and cursor control 1118(e.g., mouse, trackball, or the like).

In some examples, computer system 1100 performs specific operations byprocessor 1104 executing one or more sequences of one or moreinstructions stored in system memory 1106. Such instructions may be readinto system memory 1106 from another computer readable medium, such asstatic storage device 1108 or disk drive 1110. In other examples,hard-wired circuitry may be used in place of or in combination withsoftware instructions to implement the invention.

The term “computer readable medium” refers to any medium thatparticipates in providing instructions to processor 1104 for execution.Such a medium may take many forms, including but not limited to,non-volatile media, volatile media, and transmission media. Non-volatilemedia includes, for example, optical or magnetic disks, such as diskdrive 1110. Volatile media includes dynamic memory, such as systemmemory 1106. Transmission media includes coaxial cables, copper wire,and fiber optics, including wires that comprise bus 1102. Transmissionmedia can also take the form of acoustic or light waves, such as thosegenerated during radio wave and infrared data communications.

Common forms of computer readable media includes, for example, floppydisk, flexible disk, hard disk, magnetic tape, any other magneticmedium, CD-ROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, RAM, PROM, EPROM,FLASH-EPROM, any other memory chip or cartridge, carrier wave, or anyother medium from which a computer can read.

In some examples, execution of the sequences of instructions may beperformed by a single computer system 1100. Two or more computer systems1100 coupled by communication link 1120 (e.g., LAN, PSTN, wirelessnetwork, or the like) may perform the sequence of instructions incoordination with one another. Computer system 1100 may transmit andreceive messages, data, and instructions, including program (i.e.,application code) through communication link 1120 and communicationinterface 1112. Received program code may be executed by processor 1104as it is received, and/or stored in disk drive 1110, or othernon-volatile storage for later execution.

Although the foregoing examples have been described in some detail forpurposes of clarity of understanding, implementations of theabove-described system and techniques is not limited to the detailsprovided. There are many alternative implementations and the disclosedexamples are illustrative and not restrictive.

What is claimed:
 1. A method comprising: receiving at a contentdistribution and management system activity data associated with a userfrom a client, the client comprising an interface configured to displaycommercial content and a player configured to access the contentdistribution and management system; storing the activity data in adatabase; displaying the commercial content using the interface;receiving another activity data associated with the user from theclient; storing the another activity data in the database; determininganother commercial content to display using the activity data and theanother activity data, the another commercial content associated with acontrol parameter configured to modify one or more functions availablewhile playing the another commercial content; modifying the one or morefunctions based on the control parameter; and displaying the anothercommercial content.
 2. The method of claim 1, wherein the commercialcontent comprises an advertisement associated with a content provider.3. The method of claim 1, wherein the another commercial contentcomprises another advertisement associated with another contentprovider.
 4. The method of claim 1, further comprising identifying thecommercial content from a local content source using an ad targetinganalysis engine in communication with the content distribution andmanagement system configured to target the commercial content, the localcontent source residing within the content distribution and managementsystem.
 5. The method of claim 1, further comprising identifying thecommercial content from a remote content source using an ad targetinganalysis engine in communication with the content distribution andmanagement system configured to target the commercial content.
 6. Themethod of claim 1, wherein the activity data comprises demographic dataassociated with the user.
 7. The method of claim 1, wherein the activitydata comprises psychographic data associated with the user.
 8. Themethod of claim 1, wherein the activity data is associated with anaction being performed using the player.
 9. The method of claim 1,wherein the activity data is associated with a user preference.
 10. Themethod of claim 1, wherein the another activity data comprisesdemographic data associated with the user.
 11. The method of claim 1,wherein the another activity data comprises psychographic dataassociated with the user.
 12. The method of claim 1, wherein the anotheractivity data is associated with an action being performed using theplayer.
 13. The method of claim 1, wherein the activity data isassociated with a user preference.
 14. The method of claim 1, whereinthe player is further configured to play content accessed from thecontent distribution and management system.
 15. A system comprising: anapplication configured to receive at a content distribution andmanagement system activity data associated with a user from a client,the client comprising an interface configured to display commercialcontent and a player configured to access the content distribution andmanagement system, to store the activity data in a database, to displaythe commercial content using the interface, to receive another activitydata associated with the user from the client, to store the anotheractivity data in the database, to determine another commercial contentto display using the activity data and the another activity data, theanother commercial content associated with a control parameterconfigured to modify one or more functions available while playing theanother commercial content, to modify the one or more functions based onthe control parameter, and to display the another commercial content;and a database configured to store the activity data, the anotheractivity data, the commercial content and the another commercialcontent.
 16. The system of claim 15, further comprising the clientconfigured to communicate with the application, the client configured todisplay the commercial content and the another commercial content. 17.The system of claim 15, wherein the player is further configured to playcontent accessed from the content distribution and management system.18. A computer readable medium including instructions for performing amethod, the method comprising: receiving at a content distribution andmanagement system activity data associated with a user from a client,the client comprising an interface configured to display commercialcontent and a player configured to access the content distribution andmanagement system; storing the activity data in a database; displayingthe commercial content using the interface; receiving another activitydata associated with the user from the client; storing the anotheractivity data in the database; determining another commercial content todisplay using the activity data and the another activity data, theanother commercial content associated with a control parameterconfigured to modify one or more functions available while playing theanother commercial content; modifying the one or more functions based onthe control parameter; and displaying the another commercial content.